// var i;
// var $bundleConfig = require("./BundleConfig");
// var $resKeeper = require("./ResKeeper");
// var $commonUtils = require("./CommonUtils");
// var $playerDataManager = require("./PlayerDataManager");
// var h = cc._decorator;
// var f = h.ccclass;
// var g = h.property;
// var _ = h.inspector;
// var y = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.qiandaoday = null;
//         t.qiandaovalue = null;
//         t.iconSpr = null;
//         t.lockweilai = null;
//         t.putonglinqu = null;
//         t.linquLock = null;
//         t.nowcode = 1;
//         t.nowqiandao = null;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onEnable = function () {};
//     t.prototype.onDisable = function () {};
//     t.prototype.initUi = function (e) {
//         return __awaiter(this, void 0, void 0, function () {
//             var t;
//             var o;
//             var n;
//             return __generator(this, function (i) {
//                 switch (i.label) {
//                     case 0:
//                         switch (
//                             ((this.nowqiandao = e),
//                             (this.qiandaoday.string = "第" + e.id + "天"),
//                             (this.qiandaovalue.string = e.award + ""),
//                             (t = null),
//                             e.awardtype)
//                         ) {
//                             case 1:
//                                 return [3, 1];
//                             case 2:
//                                 return [3, 3];
//                             case 3:
//                                 return [3, 5];
//                             case 5:
//                                 return [3, 7];
//                             case 6:
//                                 return [3, 9];
//                             case 7:
//                                 return [3, 11];
//                         }
//                         return [3, 13];
//                     case 1:
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Common, "res/ui/tu/goldIcon", cc.SpriteFrame)
//                         ];
//                     case 2:
//                         t = i.sent();
//                         this.iconSpr.spriteFrame = t;
//                         return [3, 13];
//                     case 3:
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Common, "res/ui/tu/diamondIcon", cc.SpriteFrame)
//                         ];
//                     case 4:
//                         t = i.sent();
//                         this.iconSpr.spriteFrame = t;
//                         return [3, 13];
//                     case 5:
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Common, "res/ui/tu/powerIcon", cc.SpriteFrame)
//                         ];
//                     case 6:
//                         t = i.sent();
//                         this.iconSpr.spriteFrame = t;
//                         return [3, 13];
//                     case 7:
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Common, "res/quality/suipian_1", cc.SpriteFrame)
//                         ];
//                     case 8:
//                         t = i.sent();
//                         this.iconSpr.spriteFrame = t;
//                         return [3, 13];
//                     case 9:
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Common, "res/quality/suipian_2", cc.SpriteFrame)
//                         ];
//                     case 10:
//                         t = i.sent();
//                         this.iconSpr.spriteFrame = t;
//                         return [3, 13];
//                     case 11:
//                         return [
//                             4,
//                             this._loadRes($bundleConfig.BundleNames.Common, "res/quality/suipian_3", cc.SpriteFrame)
//                         ];
//                     case 12:
//                         t = i.sent();
//                         this.iconSpr.spriteFrame = t;
//                         return [3, 13];
//                     case 13:
//                         $commonUtils.default.LimitSpriteMaxSize(this.iconSpr, 80);
//                         o = $playerDataManager.PlayerDataMgr.getQianDaoCount();
//                         n = e.id - 1;
//                         if (o > n) {
//                             this.linquLock.active = !0;
//                             this.lockweilai.active = !0;
//                             this.putonglinqu.active = !1;
//                             this.nowcode = -1;
//                         }
//                         if (o == n) {
//                             1 == $playerDataManager.PlayerDataMgr.globalData.isqiandaocode
//                                 ? ((this.linquLock.active = !1),
//                                   (this.lockweilai.active = !1),
//                                   (this.putonglinqu.active = !0),
//                                   (this.nowcode = 1))
//                                 : ((this.linquLock.active = !1),
//                                   (this.lockweilai.active = !0),
//                                   (this.putonglinqu.active = !1),
//                                   (this.nowcode = 2));
//                         }
//                         if (o < n) {
//                             this.linquLock.active = !1;
//                             this.lockweilai.active = !0;
//                             this.putonglinqu.active = !1;
//                             this.nowcode = 2;
//                         }
//                         return [2];
//                 }
//             });
//         });
//     };
//     __decorate([g(cc.Label)], t.prototype, "qiandaoday", void 0);
//     __decorate([g(cc.Label)], t.prototype, "qiandaovalue", void 0);
//     __decorate([g(cc.Sprite)], t.prototype, "iconSpr", void 0);
//     __decorate([g(cc.Node)], t.prototype, "lockweilai", void 0);
//     __decorate([g(cc.Node)], t.prototype, "putonglinqu", void 0);
//     __decorate([g(cc.Node)], t.prototype, "linquLock", void 0);
//     return __decorate([f], t);
// })($resKeeper.default);
// exports.default = y;

// import {BundleNames} from './BundleConfig';
// import ResKeeper from './ResKeeper';
// import CommonUtils from './CommonUtils';
// import {PlayerDataMgr} from './PlayerDataManager';

// const { ccclass, property, inspector } = cc._decorator;

// /** 
//  * 签到类
//  * 建议名称: CheckIn
//  */
// @ccclass
// export default class UI_QianDaoItem extends ResKeeper {

//     // 签到天数标签
//     @property(cc.Label)
//     public qiandaoday: cc.Label = null;

//     // 签到奖励值标签
//     @property(cc.Label)
//     public qiandaovalue: cc.Label = null;

//     // 图标精灵
//     @property(cc.Sprite)
//     public iconSpr: cc.Sprite = null;

//     // 未来的锁节点
//     @property(cc.Node)
//     public lockweilai: cc.Node = null;

//     // 普通领取节点
//     @property(cc.Node)
//     public putonglinqu: cc.Node = null;

//     // 领取锁节点
//     @property(cc.Node)
//     public linquLock: cc.Node = null;

//     // 当前代码
//     public nowcode: number = 1;

//     // 当前签到
//     public nowqiandao: any = null;

//     /**
//      * 启用时调用
//      * 建议方法名: onComponentEnable
//      */
//     onEnable() {}

//     /**
//      * 禁用时调用
//      * 建议方法名: onComponentDisable
//      */
//     onDisable() {}

//     /**
//      * 初始化UI
//      * @param data 签到信息对象
//      * 建议方法名: initializeUI
//      */
//     async initUi(data: any): Promise<void> {
//         this.nowqiandao = data;
//         this.qiandaoday.string = `第${data.id}天`;
//         this.qiandaovalue.string = String(data.award);
//         let spriteFrame: cc.SpriteFrame = null;

//         switch (data.awardtype) {
//             case 1:
//                 spriteFrame = await this._loadRes(BundleNames.Common, "res/ui/tu/goldIcon", cc.SpriteFrame);
//                 break;
//             case 2:
//                 spriteFrame = await this._loadRes(BundleNames.Common, "res/ui/tu/diamondIcon", cc.SpriteFrame);
//                 break;
//             case 3:
//                 spriteFrame = await this._loadRes(BundleNames.Common, "res/ui/tu/powerIcon", cc.SpriteFrame);
//                 break;
//             case 5:
//                 spriteFrame = await this._loadRes(BundleNames.Common, "res/quality/suipian_1", cc.SpriteFrame);
//                 break;
//             case 6:
//                 spriteFrame = await this._loadRes(BundleNames.Common, "res/quality/suipian_2", cc.SpriteFrame);
//                 break;
//             case 7:
//                 spriteFrame = await this._loadRes(BundleNames.Common, "res/quality/suipian_3", cc.SpriteFrame);
//                 break;
//             default:
//                 break;
//         }

//         if (spriteFrame) {
//             this.iconSpr.spriteFrame = spriteFrame;
//         }

//         CommonUtils.LimitSpriteMaxSize(this.iconSpr, 80);

//         const qianDaoCount = PlayerDataMgr.getQianDaoCount();
//         const dayIndex = data.id - 1;

//         if (qianDaoCount > dayIndex) {
//             this.linquLock.active = true;
//             this.lockweilai.active = true;
//             this.putonglinqu.active = false;
//             this.nowcode = -1;
//         } else if (qianDaoCount == dayIndex) {
//             if (PlayerDataMgr.globalData.isqiandaocode === 1) {
//                 this.linquLock.active = false;
//                 this.lockweilai.active = false;
//                 this.putonglinqu.active = true;
//                 this.nowcode = 1;
//             } else {
//                 this.linquLock.active = false;
//                 this.lockweilai.active = true;
//                 this.putonglinqu.active = false;
//                 this.nowcode = 2;
//             }
//         } else {
//             this.linquLock.active = false;
//             this.lockweilai.active = true;
//             this.putonglinqu.active = false;
//             this.nowcode = 2;
//         }
//     }
// }

import { BundleNames } from './BundleConfig';
import ResKeeper from './ResKeeper';
import CommonUtils from './CommonUtils';
import { PlayerDataMgr } from './PlayerDataManager';

const { ccclass, property, inspector } = cc._decorator;

/** 
 * 签到类
 * 建议名称: CheckIn
 */
@ccclass
export default class ViewQianDaoItem extends ResKeeper {

    // 签到天数标签
    @property(cc.Label)
    public qiandaoday: cc.Label = null;

    // 签到奖励值标签
    @property(cc.Label)
    public qiandaovalue: cc.Label = null;

    // 图标精灵
    @property(cc.Sprite)
    public iconSpr: cc.Sprite = null;

    // 未来的锁节点
    @property(cc.Node)
    public lockweilai: cc.Node = null;

    // 普通领取节点
    @property(cc.Node)
    public putonglinqu: cc.Node = null;

    // 领取锁节点
    @property(cc.Node)
    public linquLock: cc.Node = null;

    // 当前代码
    public nowcode: number = 1;

    // 当前签到
    public nowqiandao: any = null;

    /**
     * 启用时调用
     * 建议方法名: onComponentEnable
     */
    onEnable() {}

    /**
     * 禁用时调用
     * 建议方法名: onComponentDisable
     */
    onDisable() {}

    /**
     * 初始化UI
     * @param data 签到信息对象
     * 建议方法名: initializeUI
     */
    async initUI(data: any): Promise<void> {
        this.nowqiandao = data;
        this.qiandaoday.string = `第${data.id}天`;
        this.qiandaovalue.string = String(data.award);

        // 优化后的资源加载部分，减少重复代码
        const awardTypeToPath = {
            1: "res/ui/tu/goldIcon",
            2: "res/ui/tu/diamondIcon",
            3: "res/ui/tu/powerIcon",
            5: "res/quality/suipian_1",
            6: "res/quality/suipian_2",
            7: "res/quality/suipian_3"
        };

        const resourcePath = awardTypeToPath[data.awardtype];
        let spriteFrame: cc.SpriteFrame = null;

        if (resourcePath) {
            spriteFrame = await this._loadRes(BundleNames.Common, resourcePath, cc.SpriteFrame);
        }

        if (spriteFrame) {
            this.iconSpr.spriteFrame = spriteFrame;
        }

        CommonUtils.limitSpriteSize(this.iconSpr, 80);

        const qianDaoCount = PlayerDataMgr.getQianDaoCount();
        const dayIndex = data.id - 1;

        if (qianDaoCount > dayIndex) {
            this.linquLock.active = true;
            this.lockweilai.active = true;
            this.putonglinqu.active = false;
            this.nowcode = -1;
        } else if (qianDaoCount === dayIndex) {
            if (PlayerDataMgr.globalData.isqiandaocode === 1) {
                this.linquLock.active = false;
                this.lockweilai.active = false;
                this.putonglinqu.active = true;
                this.nowcode = 1;
            } else {
                this.linquLock.active = false;
                this.lockweilai.active = true;
                this.putonglinqu.active = false;
                this.nowcode = 2;
            }
        } else {
            this.linquLock.active = false;
            this.lockweilai.active = true;
            this.putonglinqu.active = false;
            this.nowcode = 2;
        }
    }
}

/**
 * 代码优化说明：
 * 1. 将数据里的奖励类型与资源路径的映射通过对象 `awardTypeToPath` 管理，减少了重复代码。
 * 2. 更改局部变量名，及保持代码结构和逻辑不变，提升了代码的可读性和易维护性。
 */